import Vue from 'vue'
import Vuex from 'vuex'

// 导入子模块对象
import userModule from './modules/user'

// 导入本地存储包
import createPersistedState from 'vuex-persistedstate'
Vue.use(Vuex)

export default new Vuex.Store({
  state: {},
  getters: {},
  mutations: {},
  actions: {},
  modules: {
    // 注册子模块
    user: userModule
  }, //   使用模块
  plugins: [
    // 使用插件，就是把模块下的数据刷新不丢失
    // 内部默认使用的是locaStorage
    // 1.自动把vuex中的数据在本地存一份
    // 2.当属新页面的时候，会自动把从本地中取值赋值给vuex
    // 3.当vuex中的数据变了的时候，自动把最新的数据同步到本地存储中（让本地存储中的数据和vuex中的数据保持一致）
    // 注意：今后在代码中只需要关注vuex的数据，这个插件会自动把vuex中的数据同步到本地存储中
    createPersistedState({
      // 哪些子模块下的数据需要持久化
      paths: ['user'],
      //   本地键名
      key: '大事件token'
    })
  ]
})
